<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <script>
    // 直接报错因为let 重复声明
    // function test() {
    //   console.log(a); // 输出？
    //   var a = 10;
    //   {
    //     console.log(a); // 输出？ 报错
    //     let a = 20;
    //     console.log(a); // 输出？
    //     function a() {
    //       console.log("block func");
    //     }
    //   }
    //   console.log(a); // 输出？ 10
    // }
    // test();

    // var x = 1;
    // function foo() {
    //   console.log(x); // 输出？ 1
    //   x = x++;
    //   2;
    //   console.log(x); // 输出？ 1
    // }
    // foo();
    // console.log(x); // 输出？ 1

    // let a = "global";
    // function outer() {
    //   console.log(a); // 输出？
    //   if (true) {
    //     console.log(a); // 输出？
    //     let a = "block";
    //     console.log(a); // 输出？
    //   }
    //   console.log(a); // 输出？
    // }
    // outer();
    var a = 20;
    function outer() {
      var a = 10;
      function fn() {
        console.log(a);
      }
      return fn;
    }
    const f = outer();
    f();
  </script>
  <body></body>
</html>
